
package com.fitco.asociaciones.agregacion;

import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author Ronald Cuello
 */
public class Computador {
    private List<Parlante> parlantes;
    
    public Computador(){
        
    }
    public Computador(List<Parlante> parlantes){
        this.parlantes=parlantes;
    }

    /**
     * Agregar un nuevo parlante al computador
     * @param parlante
     * @return True si se agrego el parlante
     */
    public boolean agregarParlante(Parlante parlante){
        if(this.parlantes==null){
            this.parlantes=new LinkedList<Parlante>();
        }
        //verificar que no se encuentre el mismo parlante agregado
        if(!this.parlantes.contains(parlante)){
            //Se agrega un PARLANTE que fue creado en otro contexto
            return this.getParlantes().add(parlante);
        }
        //El parlante no fue agregado
        return false;
    }
    /**
     * Remueve un parlante del computador
     * @param parlante
     * @return True si fue removido el parlante del computador
     */
    public boolean removerParlante(Parlante parlante){
        //Se remueve el parlante de la lista del computador pero el objeto puede que a un exite
        //debido a que es referenciado por otro objeto en otro contexto
        return this.getParlantes().remove(parlante);
    }

    /**
     * @return parlantes del computador
     */
    public List<Parlante> getParlantes() {
        return parlantes;
    }

    /**
     * @param parlantes Agrega un nuevo listado de parlantes al computador
     */
    public void setParlantes(List<Parlante> parlantes) {
        this.parlantes = parlantes;
    }
    
}
